const file =require("fs");
const path=require("path");
const Product=require("../schema/productschema");

//上传图片
exports.UploadPicture=async(ctx)=>{
    // console.log("上传图片")
    console.log(ctx.req.file.filename);
    ctx.body = {
        status:1,
        name:ctx.req.file.filename,
        filename: 'http://localhost:5000/uploads/'+ctx.req.file.filename//返回文件名
    }
}

exports.RemovePicture=(ctx)=>{
    const {name}= ctx.request.body;
    const filename=path.join(__dirname,"../public/uploads",name)
    file.unlinkSync(filename)
    ctx.body={
        msg:"删除图片"
    }
}

exports.AddProduct=async ctx=>{
    const {proName} =ctx.request.body
    const result=await Product.findOne({proName})
    if(result){
        ctx.body={
            status:0,
            msg:"该商品名称已经存在，不能重复添加"
        }
    }else {
        Product.create(ctx.request.body);
        ctx.body = {
            status: 1,
            msg: "新商品添加成功"
        }
    }
}


//获取商品
exports.GetProduct=async ctx=>{
    let {page ,limit}=ctx.request.body
    limit=+limit;
    page=+page;
    let star=(page-1)*limit;

    const products=await Product.find().skip(star).limit(limit);
    const total =await Product.find().countDocuments();

    ctx.body={
        products,
        total
    }
}

//查找商品
exports.SearchProduct=async ctx=>{
    let {name,intro,page,limit} =ctx.request.query;
    limit=+limit;
    page=+page;
    let star=(page-1)*limit;
    let products=null;
    let total=null;
    if(name){
        products=await Product.find({proName:new RegExp(name)}).skip(star).limit(limit)
        total=await Product.find({proName:new RegExp(name)}).countDocuments()
    }else{
        products=await Product.find({proIntro:new RegExp(intro)}).skip(star).limit(limit)
        total=await Product.find({proIntro:new RegExp(intro)}).countDocuments()
    }
    ctx.body={
        products,
        total
    }
}

//更新商品信息
exports.UpdateProduct=async ctx=>{
    const {proName,_id} =ctx.request.body
    // const result=await Product.findOne({proName})
    // if(result){
    //     ctx.body={
    //         status:0,
    //         msg:"该商品名称已经存在，不能重复添加"
    //     }
    // }else{
    //
    // }
    const result = await Product.updateOne({_id},ctx.request.body)
    ctx.body={
        status:1,
        msg:"商品信息更新成功"
    }
}

//删除商品
exports.RemoveProduct=async ctx=>{
    console.log(ctx.request.body)
    const {_id ,proPictures}=ctx.request.body;

    //匹配出商品图片，并删除图片
    let reg=/[0-9]{5,}(.jpg|.png|.jpeg)$/
    if(proPictures.length){
        const imgs=proPictures.map(item=>{
            return item.match(reg)
        })
        const img=imgs.map(item=>{
            return item[0]
        })
        for(var i =0 ;i<img.length;i++){
            const filename=path.join(__dirname,"../public/uploads",img[i])
            file.unlinkSync(filename)
        }
    }

    //删除商品
    const result =await Product.deleteOne({_id:_id})
    if(result.deletedCount){
        ctx.body={
            status:1,
            msg:"删除商品成功"
        }
    }else{
        ctx.body={
            status:0,
            msg:"删除商品失败"
        }
    }
}